1. Technical Field
The present invention relates to computer program compilation. In particular, the present invention relates to optimizing compiled binary files.
2. Description of the Related Art
Typically computer programmers create software programs in source code using a high level language such as C but such programs can not be directly performed by a computer. A compiler is a program which transforms a high level language source code program into a binary program of the form that can be used directly by a computer. Since there are many types of computer processors, a compiler must provide a binary program that is directed to the specific computer processor that will run the program. The receiving computer processor is termed the target processor. If a program is to be distributed to a number of computer processors, several different program compilations must be performed in order provide the appropriate binary programs for each different computer processor.
There are examples of current computer systems such as those manufactured by Apple Computer, Incorporated that use two different types of processor architectures, one of a PowerPC architecture from IBM and one from Intel. A program intended to be used on an Apple computer must provide both compiled binary programs since one binary version will not be compatible with a different processor architecture.
Another consideration in compilation is optimization of the compiled binary code to run as quickly and efficiently as possible on its target computer processor system. Since there are several different types of processor architectures and several different implementations of each processor architecture, providing compiled optimized binary programs for these different processor architectures and their implementations result in a large number of different binary files for a program.